
'''
字典代替其他语言中的Switch功能
'''

#思路：
#1.利用字典取值的get方法的容错性，处理switch语句中的default情况
#2.设置字典的vlaue为对应方法名，来代替switch语句中的代码块
#3.为不同key设置相同的value，模拟switch中穿透


#第一步：定义处理函数

def taskForSunday():
    print("今天休息")

def taskForRest():
    print("今天休息")

def taskForChinese():
    print("今天上语文课")

def taskForMath():
    print("今天上数学课")

def taskForEnglish():
    print("今天上英语课")

def taskForDefault():
    print("输入错误啦。。。。")

#第二步：使用字典模拟Switch功能
switchDic = {"Sunday":taskForRest,
            "Monday":taskForChinese,
            "Tuesday":taskForMath,
            "Wednesday":taskForEnglish,
            "Tursday":taskForEnglish,
            "Friday":taskForEnglish,
            "Saturday":taskForRest
}

#测试取值
#通过get获取字典key对应的方法后，又添加了个括号，这样会执行得到的方法
day1 = "Monday"
switchDic.get(day1,taskForDefault)() #打印：今天上语文课

#测试穿透
#Wednesday，Tursday，Friday三个的效果相同
day2 = "Friday"
switchDic.get(day2,taskForDefault)() #打印：今天上英语课

#输入错误的字段
#字典的get方法第二个参数是默认值，即通过key值不能找到value时，返回默认值
#这里使用了自定义函数的函数名：taskForDefault，用于实现switch的defalut功能
day3 = "天气不错哦"
switchDic.get(day3,taskForDefault)() #打印：输入错误啦。。。。


 